localData = read.csv('local1Data.csv')
localData = localData[,2:ncol(localData)]
head(localData)
colnames(localData)
[1] "networkName" "methodName" "nodeList" "andNodeList"
[5] "andNodeInvertList" "ruleLengths" "equivs" "plainRules"
[9] "randomERSIndividual" "minLocalSearchError"
getIndegree = function(x){
return(stringr::str_count(pattern = "\\[",string = x) - 1)
}
localData$indegree = unlist(lapply(as.vector(localData$equivs), getIndegree))

require(plyr)
levels(localData$methodName) = c("Combined", "Phosphoproteomics", "Proteomics", "Transcriptomics")
mu <- ddply(localData[localData$indegree>=3,], "methodName", summarise, grp.mean=mean(ruleLengths))
mu$grp.mean = round(mu$grp.mean,1)
ggplot(data = localData[localData$indegree>=3,]) + geom_histogram(aes(ruleLengths), bins = 20) + theme_bw() + theme(panel.grid.minor = element_line(color = 'grey', size = 0.25, linetype = 2), text = element_text(size = 14)) + ylab("Count") + scale_x_continuous(name = "Size of ERS") + facet_wrap(vars(methodName), nrow=1, scales="free_y") + geom_vline(data = mu, aes(xintercept=grp.mean), color='red',linetype='dashed') + geom_label(data = mu, y = Inf, x=Inf, vjust=2, hjust=2, aes(label=grp.mean), color = 'red') + facet_wrap(vars(methodName), nrow=1, scales="free_y")
ggsave(filename = "ERS_size_distribution.png", height = 4, width = 8, dpi = 600)
ggsave(filename = "ERS_size_distribution.svg", height = 4, width = 8)
ggsave(filename = "ERS_size_distribution.pdf", height = 4, width = 8)

| concatenated |
44.15706 |
| Phosphoproteomics |
43.71438 |
| Proteomics |
56.88941 |
| Transcriptomics |
62.70384 |

nodeTable = read.csv("node_table.csv")
nodeTable = nodeTable[,2:ncol(nodeTable)]
print(colnames(nodeTable))
[1] "andNode" "Display.Name" "IS" "name" "RA" "selected"
[7] "shared.name" "Dataset" "Contrast" "Network"
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxvY2FsRGF0YSA9IHJlYWQuY3N2KCdsb2NhbDFEYXRhLmNzdicpDQpsb2NhbERhdGEgPSBsb2NhbERhdGFbLDI6bmNvbChsb2NhbERhdGEpXQ0KYGBgDQoNCmBgYHtyfQ0KaGVhZChsb2NhbERhdGEpDQpgYGANCg0KYGBge3J9DQpjb2xuYW1lcyhsb2NhbERhdGEpDQpgYGANCg0KYGBge3J9DQpnZXRJbmRlZ3JlZSA9IGZ1bmN0aW9uKHgpew0KICByZXR1cm4oc3RyaW5ncjo6c3RyX2NvdW50KHBhdHRlcm4gPSAiXFxbIixzdHJpbmcgPSB4KSAtIDEpDQp9DQpsb2NhbERhdGEkaW5kZWdyZWUgPSB1bmxpc3QobGFwcGx5KGFzLnZlY3Rvcihsb2NhbERhdGEkZXF1aXZzKSwgZ2V0SW5kZWdyZWUpKQ0KYGBgDQoNCmBgYHtyfQ0KcmVxdWlyZShnZ3Bsb3QyKQ0KcmVxdWlyZShHR2FsbHkpDQpyZXF1aXJlKHJlc2hhcGUyKQ0KZ2dwYWlycyhkYXRhID0gbG9jYWxEYXRhW2xvY2FsRGF0YSRpbmRlZ3JlZT49MyxdLCBjb2x1bW5zID0gJ3J1bGVMZW5ndGhzJywgYWVzKGNvbG9yID0gbWV0aG9kTmFtZSwgc2hhcGUgPSBtZXRob2ROYW1lKSwgc2hvd1N0cmlwcyA9IEZBTFNFKSANCmBgYA0KDQpgYGB7cn0NCnJlcXVpcmUocGx5cikNCmxldmVscyhsb2NhbERhdGEkbWV0aG9kTmFtZSkgPSBjKCJDb21iaW5lZCIsICJQaG9zcGhvcHJvdGVvbWljcyIsICJQcm90ZW9taWNzIiwgIlRyYW5zY3JpcHRvbWljcyIpDQptdSA8LSBkZHBseShsb2NhbERhdGFbbG9jYWxEYXRhJGluZGVncmVlPj0zLF0sICJtZXRob2ROYW1lIiwgc3VtbWFyaXNlLCBncnAubWVhbj1tZWFuKHJ1bGVMZW5ndGhzKSkNCm11JGdycC5tZWFuID0gcm91bmQobXUkZ3JwLm1lYW4sMSkNCmdncGxvdChkYXRhID0gbG9jYWxEYXRhW2xvY2FsRGF0YSRpbmRlZ3JlZT49MyxdKSArIGdlb21faGlzdG9ncmFtKGFlcyhydWxlTGVuZ3RocyksIGJpbnMgPSAyMCkgKyB0aGVtZV9idygpICsgdGhlbWUocGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfbGluZShjb2xvciA9ICdncmV5Jywgc2l6ZSA9IDAuMjUsIGxpbmV0eXBlID0gMiksIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0KSkgICsgeWxhYigiQ291bnQiKSArIHNjYWxlX3hfY29udGludW91cyhuYW1lID0gIlNpemUgb2YgRVJTIikgKyBmYWNldF93cmFwKHZhcnMobWV0aG9kTmFtZSksIG5yb3c9MSwgc2NhbGVzPSJmcmVlX3kiKSArIGdlb21fdmxpbmUoZGF0YSA9IG11LCBhZXMoeGludGVyY2VwdD1ncnAubWVhbiksIGNvbG9yPSdyZWQnLGxpbmV0eXBlPSdkYXNoZWQnKSArIGdlb21fbGFiZWwoZGF0YSA9IG11LCB5ID0gSW5mLCB4PUluZiwgdmp1c3Q9MiwgaGp1c3Q9MiwgYWVzKGxhYmVsPWdycC5tZWFuKSwgY29sb3IgPSAncmVkJykgKyBmYWNldF93cmFwKHZhcnMobWV0aG9kTmFtZSksIG5yb3c9MSwgc2NhbGVzPSJmcmVlX3kiKQ0KZ2dzYXZlKGZpbGVuYW1lID0gIkVSU19zaXplX2Rpc3RyaWJ1dGlvbi5wbmciLCBoZWlnaHQgPSA0LCB3aWR0aCA9IDgsIGRwaSA9IDYwMCkNCmdnc2F2ZShmaWxlbmFtZSA9ICJFUlNfc2l6ZV9kaXN0cmlidXRpb24uc3ZnIiwgaGVpZ2h0ID0gNCwgd2lkdGggPSA4KQ0KZ2dzYXZlKGZpbGVuYW1lID0gIkVSU19zaXplX2Rpc3RyaWJ1dGlvbi5wZGYiLCBoZWlnaHQgPSA0LCB3aWR0aCA9IDgpDQpgYGANCmBgYHtyfQ0Ka25pdHI6OmthYmxlKG11KQ0KYGBgDQoNCmBgYHtyfQ0KZ2dwbG90KGRhdGEgPSBsb2NhbERhdGFbbG9jYWxEYXRhJGluZGVncmVlPj0zLF0pICsgZ2VvbV9ib3hwbG90KGFlcyh4PXJ1bGVMZW5ndGhzLHk9bWV0aG9kTmFtZSkpDQpgYGANCmBgYHtyfQ0Kcm0obG9jYWxEYXRhKQ0KYGBgDQoNCmBgYHtyfQ0Kbm9kZVRhYmxlID0gcmVhZC5jc3YoIm5vZGVfdGFibGUuY3N2IikNCm5vZGVUYWJsZSA9IG5vZGVUYWJsZVssMjpuY29sKG5vZGVUYWJsZSldDQpwcmludChjb2xuYW1lcyhub2RlVGFibGUpKQ0KYGBgDQpgYGB7cn0NCg0KDQoNCmBgYA0KDQo=